home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / share / idl / bonobo-2.0 / Bonobo_Canvas.idl < prev    next >
Text File  |  2006-01-09  |  4KB  |  206 lines

  1. /*
  2.  * Canvas-based rendering of views
  3.  *
  4.  * Author:
  5.  *    Miguel de Icaza (miguel@kernel.org)
  6.  *
  7.  * Copyright (C) 1999, 2000 Ximian, Inc.
  8.  */
  9.  
  10. #ifndef BONOBO_CANVAS_IDL
  11. #define BONOBO_CANVAS_IDL
  12.  
  13. #include "Bonobo_Unknown.idl"
  14. #include "Bonobo_Gdk.idl"
  15. #include "Bonobo_UI.idl"
  16.  
  17. module Bonobo {
  18.  
  19. module Canvas {
  20.     typedef sequence<octet> pixbuf;
  21.  
  22.     /* At least 32 bits */
  23.     typedef long int32;
  24.  
  25.     struct IRect {
  26.         long x0, y0, x1, y1;
  27.     };
  28.  
  29.     struct DRect {
  30.         double x0, y0, x1, y1;
  31.     };
  32.  
  33.     const short IS_BG  = 1;
  34.     const short IS_BUF = 2;
  35.  
  36.     typedef double affine [6];
  37.  
  38.     /*
  39.      * See gnome-canvas.h:GnomeCanvasBuf for an explanation
  40.      */
  41.     struct Buf {
  42.         pixbuf rgb_buf;
  43.         long   row_stride;
  44.         IRect  rect;
  45.         int32  bg_color;
  46.         short  flags;
  47.     };
  48.  
  49.     struct Point {
  50.         double x, y;
  51.     };
  52.  
  53.     typedef sequence<Point> Points;
  54.  
  55.     struct SVPSegment {
  56.         boolean up;     /* up or down */
  57.             DRect   bbox;
  58.         Canvas::Points  points;
  59.     };
  60.               
  61.     typedef sequence<SVPSegment> SVP;
  62.       
  63.     struct ArtUTA {
  64.         short   x0, y0;
  65.         short   width, height;
  66.         sequence<int32> utiles;
  67.     };
  68.  
  69.     struct State {
  70.         affine item_aff;
  71.         double pixels_per_unit;
  72.         double canvas_scroll_x1;
  73.         double canvas_scroll_y1;
  74.         long   zoom_xofs, zoom_yofs;
  75.         long   xoffset, yoffset;
  76.     };
  77.  
  78.     interface Component : Bonobo::Unknown {
  79.  
  80.         /** 
  81.          * update:
  82.          * 
  83.          * Returns the update region.
  84.          */
  85.         ArtUTA update  (in Canvas::State state,
  86.                 in affine aff, in SVP clip_path, in long flags,
  87.                 out double x1, out double y1, out double x2, out double y2);
  88.  
  89.         void realize (in Gdk::WindowId drawable);
  90.         void unrealize ();
  91.         void map ();
  92.         void unmap ();
  93.  
  94.         void draw   (in Canvas::State state,
  95.                  in Gdk::WindowId drawable, 
  96.                  in short x, in short y, 
  97.                  in short width, in short height);
  98.  
  99.         /**
  100.          * render:
  101.          * @buf: The render control buffer.
  102.          * 
  103.          * This version of render has buf->flags & IS_BUF == FALSE, 
  104.          * so we avoid sending the buffer out, we just return it.
  105.          *
  106.          */
  107.         void render (inout Canvas::Buf buf);
  108.  
  109.         /**
  110.          * contains:
  111.          * @x: x coordinate 
  112.          * @y: y coordinate
  113.          *
  114.          * Returns true if the point at @x, @y is contained inside
  115.          * the item
  116.          */
  117.         boolean contains (in double x, in double y);
  118.  
  119.         void bounds (in Canvas::State state, 
  120.                  out double x1, out double x2, 
  121.                  out double y1, out double y2);
  122.  
  123.         boolean event (in Canvas::State state, 
  124.                    in Bonobo::Gdk::Event event);
  125.  
  126.         /**
  127.          * setCanvasSize:
  128.          *
  129.          * Notifies this item about the size of the Canvas size on the 
  130.          * canvas
  131.          */
  132.         void setCanvasSize (in short x, in short y, in short width, in short height);
  133.  
  134.         /**
  135.          * setBounds:
  136.          * @bbox: the requested bounding box.
  137.          *
  138.          * Sets the bounding box of the item to (x1,y1)-(x2,y2)
  139.          */
  140.         void setBounds (in DRect bbox);
  141.  
  142.         void unImplemented1 ();
  143.         void unImplemented2 ();
  144.         void unImplemented3 ();
  145.         void unImplemented4 ();
  146.         void unImplemented5 ();
  147.         void unImplemented6 ();
  148.         void unImplemented7 ();
  149.         void unImplemented8 ();
  150.     };
  151.  
  152.     /*
  153.      * This interface is used on the container side to forward
  154.      * events to the real containing canvas and the item
  155.      */
  156.     
  157.     interface ComponentProxy {
  158.         /**
  159.          * requestUpdate:
  160.          *
  161.          * Requests an update of the client side canvas.
  162.          */
  163.         void requestUpdate ();
  164.         
  165.         /**
  166.          * grabFocus:
  167.          * @mask: Gdk Event mask to grab.
  168.          * @cursor: GdkCursorType to display during grab.
  169.          * @time: time of last event before grab.
  170.          *
  171.           * Grabs the mouse focus.
  172.          */
  173.         void grabFocus (in unsigned long mask,
  174.                 in long cursor,
  175.                 in unsigned long time);
  176.         
  177.         /**
  178.          * ungrabFocus:
  179.          * @time: time of last event before ungrab.
  180.          *
  181.           * Ungrabs the mouse focus.
  182.          */
  183.         void ungrabFocus (in unsigned long time);
  184.         
  185.         /**
  186.          * getUIContainer:
  187.          *
  188.           * Returns: an associated UI component or NIL.
  189.          */
  190.         UIContainer getUIContainer ();
  191.  
  192.         void unImplemented1 ();
  193.         void unImplemented2 ();
  194.         void unImplemented3 ();
  195.         void unImplemented4 ();
  196.         void unImplemented5 ();
  197.         void unImplemented6 ();
  198.         void unImplemented7 ();
  199.         void unImplemented8 ();
  200.     };
  201. };
  202.  
  203. };
  204.  
  205. #endif /* BONOBO_CANVAS_IDL */
  206.